{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "from gru import Gru\n",
    "from load_data import loaddata\n",
    "from turbine_dataset import TurbineDataset\n",
    "from torch.utils.data import DataLoader\n",
    "from torch.optim import Adam\n",
    "from torch import nn\n",
    "from trainer import Trainer\n",
    "import torch\n",
    "from sklearn.ensemble import VotingRegressor\n",
    "import lightgbm as lgb\n",
    "from sklearn.metrics import mean_squared_error, mean_absolute_error\n",
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "trainrate = 0.8\n",
    "testrate = 0.1\n",
    "seq = 24\n",
    "device = \"cuda\"\n",
    "batch_size = 128\n",
    "hidden_size = 256\n",
    "output_size = 1\n",
    "num_layers = 3\n",
    "epoch = 25"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "input_size, df = loaddata()\n",
    "traindf = df[:int(len(df) * trainrate)]\n",
    "testdf = df[-int(len(df) * testrate):]\n",
    "valdf = df[len(traindf):-len(testdf)]\n",
    "trainset = TurbineDataset(traindf, seq, device)\n",
    "valset = TurbineDataset(valdf, seq, device)\n",
    "testset = TurbineDataset(testdf, seq, device)\n",
    "trainloader = DataLoader(trainset, batch_size=batch_size, shuffle=True)\n",
    "valloader = DataLoader(valset, batch_size=batch_size)\n",
    "testloader = DataLoader(testset, batch_size=batch_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = Gru(input_size=input_size, hidden_size=hidden_size, output_size=output_size, num_layers=num_layers).to(device=device)\n",
    "optimizer = Adam(model.parameters(), lr=0.0001)\n",
    "criterion = nn.MSELoss()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "trainer = Trainer(criterion, optimizer, model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "training 0th epoch, train loss is 0.07334354398427186\n",
      "val loss is 0.033497670373913865\n",
      "training 1th epoch, train loss is 0.06789160177318586\n",
      "val loss is 0.033481849083263016\n",
      "training 2th epoch, train loss is 0.06694940237535371\n",
      "val loss is 0.03265484202635923\n",
      "training 3th epoch, train loss is 0.066195283036817\n",
      "val loss is 0.03229638895675264\n",
      "training 4th epoch, train loss is 0.06543517199655374\n",
      "val loss is 0.033270147087535375\n",
      "training 5th epoch, train loss is 0.06479122957421674\n",
      "val loss is 0.03229768255518543\n",
      "training 6th epoch, train loss is 0.06435743751763194\n",
      "val loss is 0.032228418207658385\n",
      "training 7th epoch, train loss is 0.06381139380650389\n",
      "val loss is 0.03276357932740615\n",
      "training 8th epoch, train loss is 0.06334313332206673\n",
      "val loss is 0.032364540475558624\n",
      "training 9th epoch, train loss is 0.06267844411820449\n",
      "val loss is 0.03207491843323051\n",
      "training 10th epoch, train loss is 0.062062414659670107\n",
      "val loss is 0.03219533618539572\n",
      "training 11th epoch, train loss is 0.06156355414746536\n",
      "val loss is 0.03200140786529691\n",
      "training 12th epoch, train loss is 0.06101855533025055\n",
      "val loss is 0.03197759374010342\n",
      "training 13th epoch, train loss is 0.06013202387839556\n",
      "val loss is 0.03181033348923342\n",
      "training 14th epoch, train loss is 0.05941975363702686\n",
      "val loss is 0.031020235870447423\n",
      "training 15th epoch, train loss is 0.05849065500553007\n",
      "val loss is 0.03198023682322215\n",
      "training 16th epoch, train loss is 0.0578486354297234\n",
      "val loss is 0.031466942199471375\n",
      "training 17th epoch, train loss is 0.05702827458649322\n",
      "val loss is 0.03149851257050479\n",
      "training 18th epoch, train loss is 0.05617220443500965\n",
      "val loss is 0.0315257357692139\n",
      "training 19th epoch, train loss is 0.055332740710151415\n",
      "val loss is 0.032059424748230314\n",
      "training 20th epoch, train loss is 0.05418335183834036\n",
      "val loss is 0.03189887538017636\n",
      "training 21th epoch, train loss is 0.05333278063098314\n",
      "val loss is 0.03138837710937002\n",
      "training 22th epoch, train loss is 0.05205230332255639\n",
      "val loss is 0.031892624039513366\n",
      "training 23th epoch, train loss is 0.05089799450986363\n",
      "val loss is 0.03339647684953417\n",
      "training 24th epoch, train loss is 0.049630383148582445\n",
      "val loss is 0.03311674712587976\n"
     ]
    }
   ],
   "source": [
    "trainer.train(trainloader, valloader, epoch=epoch, valepoch=1)\n",
    "# model.load_state_dict(torch.load(\"model_50.pth\"))\n",
    "# torch.save(model.state_dict(), f\"model_{seq}_{epoch}.pth\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "lgbm_train_X = []\n",
    "lgbm_train_y = []\n",
    "for x, b, y in trainloader:\n",
    "    h = model.create_dataset(x)\n",
    "    lgbm_train_X += h.tolist()\n",
    "    lgbm_train_y += y.tolist()\n",
    "\n",
    "lgbm_test_X = []\n",
    "lgbm_test_y = []\n",
    "base_y = []\n",
    "for x, b, y in testloader:\n",
    "    h = model.create_dataset(x)\n",
    "    lgbm_test_X += h.tolist()\n",
    "    base_y += b.tolist()\n",
    "    lgbm_test_y += y.tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_parameters = {\n",
    "    \"n_estimators\": 1000,\n",
    "    \"learning_rate\": 0.052587652,\n",
    "    \"colsample_bytree\": 0.9,\n",
    "    \"colsample_bynode\": 0.6,\n",
    "    \"lambda_l1\": 3.5,\n",
    "    \"lambda_l2\": 1.5,\n",
    "    \"max_depth\": 32,\n",
    "    \"num_leaves\": 500,\n",
    "    \"min_data_in_leaf\": 50,\n",
    "    \"objective\": \"regression_l1\",\n",
    "    \"device\": \"cpu\",\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.033224 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.021271 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.026241 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.020067 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.022507 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.021947 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.022003 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.022215 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.026043 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.022482 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.021735 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.022549 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 65280\n",
      "[LightGBM] [Info] Number of data points in the train set: 138216, number of used features: 256\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-3 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-3 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-3 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-3 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-3 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-3 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-3 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-3 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-3 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-3 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-3 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-3 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-3 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-3 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-3 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-3 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>VotingRegressor(estimators=[(&#x27;lightgbm_0&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=500,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=0)),\n",
       "                            (&#x27;lightgbm_1&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device...\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=500,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=10)),\n",
       "                            (&#x27;lightgbm_11&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=500,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=11))])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-27\" type=\"checkbox\" ><label for=\"sk-estimator-id-27\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;VotingRegressor<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.VotingRegressor.html\">?<span>Documentation for VotingRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>VotingRegressor(estimators=[(&#x27;lightgbm_0&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=500,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=0)),\n",
       "                            (&#x27;lightgbm_1&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device...\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=500,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=10)),\n",
       "                            (&#x27;lightgbm_11&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=500,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=11))])</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_0</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-28\" type=\"checkbox\" ><label for=\"sk-estimator-id-28\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=0)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_1</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-29\" type=\"checkbox\" ><label for=\"sk-estimator-id-29\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=1)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_2</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-30\" type=\"checkbox\" ><label for=\"sk-estimator-id-30\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=2)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_3</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-31\" type=\"checkbox\" ><label for=\"sk-estimator-id-31\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=3)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_4</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-32\" type=\"checkbox\" ><label for=\"sk-estimator-id-32\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=4)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_5</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-33\" type=\"checkbox\" ><label for=\"sk-estimator-id-33\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=5)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_6</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-34\" type=\"checkbox\" ><label for=\"sk-estimator-id-34\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=6)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_7</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-35\" type=\"checkbox\" ><label for=\"sk-estimator-id-35\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=7)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_8</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-36\" type=\"checkbox\" ><label for=\"sk-estimator-id-36\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=8)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_9</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-37\" type=\"checkbox\" ><label for=\"sk-estimator-id-37\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=9)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_10</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-38\" type=\"checkbox\" ><label for=\"sk-estimator-id-38\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=10)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_11</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-39\" type=\"checkbox\" ><label for=\"sk-estimator-id-39\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=500, objective=&#x27;regression_l1&#x27;, random_state=11)</pre></div> </div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "VotingRegressor(estimators=[('lightgbm_0',\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device='cpu',\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=500,\n",
       "                                           objective='regression_l1',\n",
       "                                           random_state=0)),\n",
       "                            ('lightgbm_1',\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device...\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=500,\n",
       "                                           objective='regression_l1',\n",
       "                                           random_state=10)),\n",
       "                            ('lightgbm_11',\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device='cpu',\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=500,\n",
       "                                           objective='regression_l1',\n",
       "                                           random_state=11))])"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "votingRegressor = VotingRegressor([(f'lightgbm_{i}', lgb.LGBMRegressor(**model_parameters, random_state=i)) for i in range(12)])\n",
    "votingRegressor.fit(lgbm_train_X, lgbm_train_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "0.037351557303251036\n",
      "0.14702152693075254\n"
     ]
    }
   ],
   "source": [
    "predictions = votingRegressor.predict(lgbm_test_X)\n",
    "actual_values = lgbm_test_y\n",
    "mse = mean_squared_error(actual_values, predictions)\n",
    "mae = mean_absolute_error(actual_values, predictions)\n",
    "print(mse)\n",
    "print(mae)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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vpe3t7e5ZyQl04egyaJFi/Dw8GDlypV4e3ub23OyXLhy5co8+eSTREVF0bt3b6KioihevLg5aTKJiIggIiKChIQEduzYwbhx4+jYsSPh4eHUqVMn03sEBgZSq1atLGMxfRibFC5cGIChQ4cSGRmZ7msqVKgAQFBQULofjtZ8YAYHB7N161aSk5OzldAULlyYqlWrMnbs2HSPFy9e3Bzjzp07sxVjSj169OD9999n586dLFiwADc3N4taMfPnz6dUqVIsXrzY4ntqzeow089V6nNT/yya/m6++uorateune61TIlb4cKFmTRpEpMmTeLUqVOsWLGC999/n0uXLrF69eqs37AQNpBkRoj/GI1G5syZQ5kyZfjuu+/SHF+5ciVffPEFq1at4sUXX6RZs2bMmzePw4cPmz9cU/Py8gLS7z0JDw9n6dKlJCQkmM+7evUq27ZtM08yBe3DPl++fLi7u5vb7t69azHkkB3du3fnjTfeYOvWrfz0008MGjTI4h6p30eDBg0oUKAAa9as4Y8//sgymcmuChUqUK5cOfbt28fHH3+c6bmNGjVixYoVXLx40fwhajQaWbx4cZb3adasGQsXLmT27NmZDjV5eXml+/f34osv8ssvv1CmTBkKFiyYaYxLlixhxYoVFkNN1kxSTqlr164MGzaM6dOns2LFCpo0aULJkiXNxw0GA56enhaJzIULF6xazWRaPffnn39a/CyvWLHC4rx69epRoEABDh48yFtvvWV17I888ghvvfUWGzZs4LfffrP6dUJYS5IZIf6zatUqzp07x6effprukukqVarw9ddfM3PmTF588UVGjx7NqlWreOaZZ/jggw947LHHuHHjBqtXr2bQoEFUrFiRMmXK4OPjw//93/9RqVIl/Pz8KF68OMWLF+fVV19l+vTpdO7cmddff52rV68yfvx4i0QGoEWLFkyYMIGOHTvSq1cvrl69yueff25OgLKrQ4cODBo0iA4dOpCQkJCmIuzw4cM5c+YMTZo0ITQ0lBs3bjB58mQ8PDxo0KBBju6dlenTp9OsWTOef/55unXrRokSJbh27RqHDh1i7969LF26FIBhw4axYsUKGjduzPDhw/H19eWbb74xz9vITIcOHYiKiqJPnz4cPnyYRo0akZyczO+//06lSpXMc6Yee+wxYmJi+OmnnyhWrBj+/v5UqFCB0aNH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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 假设 predictions 和 actual_values 已经定义\n",
    "# predictions 是模型的预测值，actual_values 是真实值\n",
    "\n",
    "\n",
    "length = 1000\n",
    "actual_values = [x + y for x, y in zip(actual_values, base_y)]\n",
    "predictions = [x + y for x, y in zip(predictions, base_y)]\n",
    "\n",
    "# 创建散点图\n",
    "plt.scatter(actual_values, predictions, color='blue', label='Actual vs Predicted')\n",
    "\n",
    "# 添加标签和标题\n",
    "plt.xlabel('Actual Values')\n",
    "plt.ylabel('Predicted Values')\n",
    "plt.title('Actual vs Predicted Values')\n",
    "\n",
    "# 添加对角线，用于比较完美预测的情况\n",
    "plt.plot([min(actual_values), max(actual_values)], [min(actual_values), max(actual_values)], linestyle='--', color='red', linewidth=2, label='Perfect Prediction')\n",
    "\n",
    "# 显示图例\n",
    "plt.legend()\n",
    "\n",
    "# 显示图形\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f0fad0acf70>]"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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0JYtW2b/s9Vq1VJTU7U//elP9vsaGhq0uLg4bcmSJX64wt6npKREA7Q1a9ZomiavuS8kJCRoL774orzWPaS6ulobPny4tnLlSu3cc8/VfvrTn2qaJv9v94RHH31UmzhxosdjPfl698nMSFNTE9u2bWP+/Pku98+fP5/169f76ar6htzcXIqLi11e+7CwMM4991x57btJZWUlAImJiYC85j3JYrHw9ttvU1tby+zZs+W17iF33303Cxcu5Nvf/rbL/fJ694xDhw6Rnp5OVlYW1157LUePHgV69vUOio3yultpaSkWi4WUlBSX+1NSUiguLvbTVfUN+uvr6bXPy8vzxyX1Kpqmcf/993P22Wczbtw4QF7znrB7925mz55NQ0MD0dHRLFu2jDFjxtjfkOW17j5vv/0227dvZ8uWLa2Oyf/b3W/mzJn83//9HyNGjODkyZP8/ve/Z86cOeTk5PTo690ngxGdwWBw+bOmaa3uEz1DXvuecc8997Br1y7WrVvX6pi85t1n5MiR7Nixg4qKCpYuXcpNN93EmjVr7Mflte4eBQUF/PSnP+Xzzz8nPDzc63nyenefiy66yH57/PjxzJ49m6FDh/Laa68xa9YsoGde7z5Zpunfvz8mk6lVFqSkpKRVxCe6l96VLa999/vJT37CBx98wFdffUVGRob9fnnNu19oaCjDhg1j2rRpLF68mIkTJ/L3v/9dXututm3bNkpKSpg6dSpmsxmz2cyaNWt45plnMJvN9tdUXu+eExUVxfjx4zl06FCP/v/dJ4OR0NBQpk6dysqVK13uX7lyJXPmzPHTVfUNWVlZpKamurz2TU1NrFmzRl77M6RpGvfccw/vvfceX375JVlZWS7H5TXveZqm0djYKK91N5s3bx67d+9mx44d9q9p06bxgx/8gB07djBkyBB5vXtYY2Mj+/btIy0trWf//+5S+2sQe/vtt7WQkBDtpZde0vbu3avdd999WlRUlHbs2DF/X1rQq66u1rKzs7Xs7GwN0J566iktOztby8vL0zRN0/70pz9pcXFx2nvvvaft3r1bu+6667S0tDStqqrKz1cenO68804tLi5OW716tVZUVGT/qqurs58jr3n3WbRokbZ27VotNzdX27Vrl/bwww9rRqNR+/zzzzVNk9e6pzmvptE0eb27289//nNt9erV2tGjR7WNGzdql1xyiRYTE2P/3dhTr3efDUY0TdP++c9/aoMGDdJCQ0O1KVOm2JdCiq756quvNKDV10033aRpmloe9uijj2qpqalaWFiYds4552i7d+/270UHMU+vNaC98sor9nPkNe8+t9xyi/19IykpSZs3b549ENE0ea17mnswIq939/re976npaWlaSEhIVp6erp2xRVXaDk5OfbjPfV6GzRN07qWWxFCCCGEOHN9smdECCGEEIFDghEhhBBC+JUEI0IIIYTwKwlGhBBCCOFXEowIIYQQwq8kGBFCCCGEX0kwIoQQQgi/kmBECCGEEH4lwYgQQggh/EqCESGEEEL4lQQjQgghhPArCUaEEEII4Vf/D8YULgNPxPKQAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "length = 50\n",
    "x = [i for i in range(length)]\n",
    "plt.plot(x, predictions[:length], color=\"red\")\n",
    "plt.plot(x, actual_values[:length])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "gru",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.19"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
